/**
WOP_Double_Entry

進一步定義Entry中的關於Double基本attribute

賴念煒 -06/12/11 新增檔案。
*/

#ifndef _WOP_Double_Entry_H_
#define	_WOP_Double_Entry_H_
/*------------------------------------------------------------*/
#include "WOP_Entry.h"
//#include "src/MappingTree.h"

class WOP_Double_Entry:public WOP_Entry{
private:
	WOP_Double_Entry(){}
	float  _valf ;
	double _val ;
	int _vali;
public:
	WOP_Double_Entry(string s,WOP_Entry* parent);
	WOP_Double_Entry(string s);

	double* getDoubleValAddr() { return &_val ; }
	float * getFloatValAddr() { return &_valf ; }
	int * getIntValAddr() { return &_vali ; }
	string getTypeStr() { return std::string("double"); }
	virtual bool update();
	virtual void updateRealValue(string s) { 
		double value ;
		_value = s ;
		if(from_string<double>(value, std::string(_value), std::boolalpha)) {
			_val = value ;
			_valf = (float) value ;
			_vali = (int) value;
		} else assert(false);
	}
};
/*------------------------------------------------------------*/
#endif	//#ifndef _WOP_Double_Entry_H_